{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn import datasets\n",
    "from sklearn import cross_validation\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def load_data():\n",
    "    digits = datasets.load_digits()\n",
    "    return cross_validation.train_test_split(digits.data,digits.target,test_size=0.25,random_state=0, stratify=digits.target)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 25 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 显示Digit数据\n",
    "def show_digits():\n",
    "    digits = datasets.load_digits()\n",
    "    fig = plt.figure()\n",
    "    #print('images 0 :',digits.data[0])\n",
    "    for i in range(25):\n",
    "        ax = fig.add_subplot(5,5,i+1)\n",
    "        #print(digits.images[i])\n",
    "        ax.imshow(digits.images[i], cmap=plt.cm.gray_r, interpolation='nearest')\n",
    "    plt.show()\n",
    "\n",
    "show_digits()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 检验【切分质量评价准则】criterion对拟合的影响\n",
    "# 测试分类决策树函数：\n",
    "def test_DTC_Criterion(*data):\n",
    "    X_train,X_test,Y_train,Y_test = data\n",
    "    \n",
    "    criterions = ['gini','entropy']\n",
    "    for criterion in criterions :\n",
    "            regr = DecisionTreeClassifier(criterion=criterion)\n",
    "            regr.fit(X_train,Y_train)\n",
    "            print(criterion)\n",
    "            print('【训练集成绩】Training Score:{0}'.format(regr.score(X_train,Y_train)))\n",
    "            print('【测试集成绩】Testing  Score:{0}'.format(regr.score(X_test,Y_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "gini\n",
      "【训练集成绩】Training Score:1.0\n",
      "【测试集成绩】Testing  Score:0.8577777777777778\n",
      "entropy\n",
      "【训练集成绩】Training Score:1.0\n",
      "【测试集成绩】Testing  Score:0.8555555555555555\n"
     ]
    }
   ],
   "source": [
    "# 开始测试：\n",
    "X_train,X_test,Y_train,Y_test = load_data()\n",
    "test_DTC_Criterion(X_train,X_test,Y_train,Y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 检验【随机划分】与【最优划分】的影响\n",
    "# 测试分类决策树函数：\n",
    "def test_DTC_splitter(*data):\n",
    "    X_train,X_test,Y_train,Y_test = data\n",
    "    \n",
    "    splitters = ['best','random']\n",
    "    \n",
    "    for splitter in splitters :\n",
    "            regr = DecisionTreeClassifier(splitter=splitter)\n",
    "            regr.fit(X_train,Y_train)\n",
    "            print(splitter)\n",
    "            print('【训练集成绩】Training Score:{0}'.format(regr.score(X_train,Y_train)))\n",
    "            print('【测试集成绩】Testing  Score:{0}'.format(regr.score(X_test,Y_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "best\n",
      "【训练集成绩】Training Score:1.0\n",
      "【测试集成绩】Testing  Score:0.8466666666666667\n",
      "random\n",
      "【训练集成绩】Training Score:1.0\n",
      "【测试集成绩】Testing  Score:0.8466666666666667\n"
     ]
    }
   ],
   "source": [
    "# 开始测试：\n",
    "X_train,X_test,Y_train,Y_test = load_data()\n",
    "test_DTC_splitter(X_train,X_test,Y_train,Y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 检验决策树深度对拟合的影响：\n",
    "# 测试分类决策树函数：\n",
    "def test_DTC_depth(*data,maxdepth):\n",
    "    X_train,X_test,Y_train,Y_test = data\n",
    "    \n",
    "    depths = np.arange(1,maxdepth)\n",
    "    \n",
    "    train_score = []\n",
    "    test_score = []\n",
    "    \n",
    "    for depth in depths :\n",
    "            regr = DecisionTreeClassifier(max_depth=depth)\n",
    "            regr.fit(X_train,Y_train)\n",
    "            train_score.append(regr.score(X_train,Y_train))\n",
    "            test_score.append(regr.score(X_test,Y_test))\n",
    "    # 绘图：\n",
    "    fig = plt.figure()\n",
    "    ax = fig.add_subplot(111)\n",
    "    ax.plot(depths,train_score,label='Training Score', marker='o')\n",
    "    ax.plot(depths,test_score, label='Testing Score',marker='*')\n",
    "    ax.set_xlabel(r'maxdepth')\n",
    "    ax.set_ylabel('score')\n",
    "    ax.set_title('DecisionTreeClassifier')\n",
    "    ax.legend(framealpha=0.5, loc='best')\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 开始测试：\n",
    "X_train,X_test,Y_train,Y_test = load_data()\n",
    "test_DTC_depth(X_train,X_test,Y_train,Y_test,maxdepth=100)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
